﻿using Student.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Student
{
    public partial class FormLogin : Form
    {
        public List<ZhangHao> ZHList = new List<ZhangHao>(); //存储账号对象的
        public FormLogin()
        {
            InitializeComponent();

            // 创建三个账号 并且把三个账号存储到本地  模拟注册
            /*
            ZhangHao z1 = new ZhangHao();
            z1.Account = 10000;
            z1.Psw = "123456";
            z1.UserName = "刘备";

            ZhangHao z2 = new ZhangHao();
            z2.Account = 10001;
            z2.Psw = "123456";
            z2.UserName = "关羽";

            ZhangHao z3 = new ZhangHao();
            z3.Account = 10002;
            z3.Psw = "123456";
            z3.UserName = "张飞";
            ZHList.Add(z1);
            ZHList.Add(z2);
            ZHList.Add(z3);
            Student.Tools.SaveData.Save("zhanghao.txt", ZHList);
            */

            // 要从本地取出三个账号
            try
            {
                ZHList = Student.Tools.SaveData.QuData("zhanghao.txt") as List<ZhangHao>;
            }
            catch
            {
                Console.WriteLine( "第一次添加");
            }
        }

        //点击登录按钮的方法
        private void button1_Click(object sender, EventArgs e)
        {
            int index = -1; // 账号对象的索引值
            for (int i = 0; i < ZHList.Count; i++)
            {
                if (this.textBox1.Text.ToString() == ZHList[i].Account.ToString()) //当前登录账号 和数组存储的三个账号进行对比
                {
                    index = i;
                    break;
                }
            }
            if (index == -1)
            {
                MessageBox.Show("账号不存在", "温馨提示");
            }
            else
            {
                //在进行密码的判断
                if (this.textBox2.Text == ZHList[index].Psw)
                {
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                    //记录当前登录成功账号 需要在main界面进行显示昵称
                    //俩个界面相互使用同一个数据时候 可以定义全局的变量 在任何界面进行使用
                    Program.CurrentAccount = ZHList[index];// 把当前登录对象赋值给全局的数据
                   // 1 在program.cs 定义全局的变量
                   //2 在登录成功之后 把当前账号赋值给全局变量   Program.CurrentAccount = ZHList[index]
                   // 3 在其他页面使用直接使用 Program.CurrentAccount就是登录账号信息
                  
                }
                else
                {
                    MessageBox.Show("账号或者密码错误", "温馨提示");
                }

            }
            // 判断是否登录成功 如果登录成功 设置对话框的结果为ok结果
            //if (true)  // 需要账号密码判断
            //{
            //    this.Close();
            //    // 设置对话框的结果为ok结果 满足了program.cs if条件
            //    this.DialogResult = DialogResult.OK; 
            //}
            //else
            //{
            //    MessageBox.Show("测试");
            //}

            // 现执行 弹出一个对话框 上面有一个登录按钮
            // FormLogin  login = new FormLogin(); // 创建formLogin对象
            //   DialogResult result = login.ShowDialog()

            //再点击登录按钮 执行上面登录判断 如果账号密码正确
            //  设置对话框的结果为ok结果 

            //再执行program.cs中
            //if (result == DialogResult.OK) 
           // {
                //判断登录成功
           //     Application.Run(new FormMain());
           // }
        }

        //账号输入框的键盘事件
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            //常用键的ascll ， 回车键：13； A-Z 65-90； a-z：97-122； 0-9:48-57
            if(e.KeyCode == Keys.Enter)  //e.KeyValue==13
            {
                textBox2.Focus(); //获取焦点的方法 
                textBox2.SelectAll();// 输入框的文本全选中
            }
        }

        //密码框的键盘事件
        private void textBox2_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyValue == 13)
            {
                this.button1.Focus();
            }
        }
    }
}
